package com.seminario.spring.domain;

import java.io.Serializable;
import java.util.GregorianCalendar;

import javax.persistence.Column;
import javax.persistence.EmbeddedId;
import javax.persistence.Entity;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;

@Entity
public class Amistad implements Serializable {
	
	private static final long serialVersionUID = 1L;
	
	protected AmistadPK amistadPK;
	private Perfil perfil;
	private Perfil perfil1;
	private GregorianCalendar fecha;

	public Amistad() {
	}

	public Amistad(AmistadPK amistadPK) {
		this.amistadPK = amistadPK;
	}

	public Amistad(int perfilId, int amigosId) {
		this.amistadPK = new AmistadPK(perfilId, amigosId);
	}

	@EmbeddedId
	public AmistadPK getAmistadPK() {
		return amistadPK;
	}

	public void setAmistadPK(AmistadPK amistadPK) {
		this.amistadPK = amistadPK;
	}


	@ManyToOne(optional = false)
	@JoinColumn(name = "amigosId", referencedColumnName = "id", insertable = false, updatable = false)
	public Perfil getPerfil() {
		return perfil;
	}

	public void setPerfil(Perfil perfil) {
		this.perfil = perfil;
	}

	@ManyToOne(optional = false)
	@JoinColumn(name = "perfilId", referencedColumnName = "id", insertable = false, updatable = false)
	public Perfil getPerfil1() {
		return perfil1;
	}

	public void setPerfil1(Perfil perfil1) {
		this.perfil1 = perfil1;
	}
	
	@Column
	public GregorianCalendar getFecha() {
		return fecha;
	}

	public void setFecha(GregorianCalendar fecha) {
		this.fecha = fecha;
	}

	@Override
	public int hashCode() {
		int hash = 0;
		hash += (amistadPK != null ? amistadPK.hashCode() : 0);
		return hash;
	}

	@Override
	public boolean equals(Object object) {
		// TODO: Warning - this method won't work in the case the id fields are
		// not set
		if (!(object instanceof Amistad)) {
			return false;
		}
		Amistad other = (Amistad) object;
		if ((this.amistadPK == null && other.amistadPK != null)
				|| (this.amistadPK != null && !this.amistadPK
						.equals(other.amistadPK))) {
			return false;
		}
		return true;
	}

	@Override
	public String toString() {
		return "com.domain.PerfilPerfil[ perfilPerfilPK=" + amistadPK + " ]";
	}

}
